<?php

class ServicioAmbulancia extends CI_Controller
{
    public function mostrarVtCambioEstado($tipoMensaje = null, $tituloMensaje = null, $mensaje = null)
    {
        $login = $this->loggedIn();
        $args['username'] = $login['username'];
        $this->load->model("EstadoAmbulancia_model");
        $estadoAmbulanciaARL = $this->EstadoAmbulancia_model->buscar();
        $args["estadoAmbulanciaARL"] = $estadoAmbulanciaARL;
        $args["content"] = "servicioAmbulancia/cambioEstado";
        $args["title"] = "Actualizar estado de una ambulancia";
        $args["tipoMensaje"] = $tipoMensaje;
        $args["tituloMensaje"] = $tituloMensaje;
        $args["mensaje"] = $mensaje;
        $this->load->view("view", $args);
    }
    
    
    
    public function buscarAmbulanciaParaCambiarSuEstado()
    {
        //require base_url().'media/FirePHPCore/fb.php';

        $placa_Ambulancia = $this->input->get('placa_Ambulancia');
        $id_EstadoAmbulancia = $this->input->get('id_EstadoAmbulancia');
        $this->load->model("Ambulancia_Model");
        $ambulanciaARL = $this->Ambulancia_Model->buscar($placa_Ambulancia, $id_EstadoAmbulancia);
        $cuerpoTabla = "";
        $this->load->model("EstadoAmbulancia_model");
        $estadoAmbulanciaARL = $this->EstadoAmbulancia_model->buscar();
        foreach ($ambulanciaARL as $ambulancia)
        {
            $idAmbulancia = $ambulancia["id_Ambulancia"];
            $numeroPlaca = $ambulancia["placa_Ambulancia"];
            $idEstadoActualAmbulancia = $ambulancia["id_EstadoAmbulancia"];
            $estadoActualAmbulancia = $ambulancia["estado_Ambulancia"];
            $estadoAmbulanciaCB = "<select onchange = 'mostrarVentanaCambioDeEstado(this, $idEstadoActualAmbulancia)'>";
            for ($i = 0; $i < count($estadoAmbulanciaARL); ++$i)
            {
                $estadoAmbulancia = $estadoAmbulanciaARL[$i];
                $id2_EstadoAmbulancia = $estadoAmbulancia['id'];
                $nombre2_EstadoAmbulancia = $estadoAmbulancia['nombre'];
                //FB::log($idEstadoActualAmbulancia);
                //FB::log($id2_EstadoAmbulancia);
                if ($idEstadoActualAmbulancia == $id2_EstadoAmbulancia) $ambulanciaSeleccionada = "selected='selected'";
                else $ambulanciaSeleccionada = "";
                $estadoAmbulanciaCB .= "<option value='$id2_EstadoAmbulancia' $ambulanciaSeleccionada>$nombre2_EstadoAmbulancia</option>";
            }
            $estadoAmbulanciaCB .= "</select>";
            $fila = "<tr><td>$idAmbulancia</td><td>$numeroPlaca</td><td>$estadoActualAmbulancia</td><td>$estadoAmbulanciaCB</td>";
            $cuerpoTabla .= $fila;
        }
        echo $cuerpoTabla;
    }
    
    
    
    public function mostrarVtnCambioEstado_a_SolicitudDeEmergencia()
    {
        $args["idAmbulancia"] = $this->input->get('idAmbulancia');
        $args["placaAmbulancia"] = $this->input->get('placaAmbulancia');
        
        $this->load->model("TipoIndicacionServicioAmbulancia_model");
        $tipoIndicacionServicioAmbulanciaARL = $this->TipoIndicacionServicioAmbulancia_model->buscar();
        $args["tipoIndicacionServicioAmbulanciaARL"] = $tipoIndicacionServicioAmbulanciaARL;
        
        $args["content"] = "servicioAmbulancia/cambioEstado_a_SolicitudDeEmergencia";
        $args["title"] = "Cambio de estado de ambulancia a : Solicitud de emergencia";
        
        $this->load->view("view", $args);
        
    }
    
    
    
    public function cambiarEstado_a_SolicitudDeEmergencia()
    {
        $idAmbulancia = $this->input->post("idAmbulanciaINP");
        $placa = $this->input->post("placaINP");
        $idPaciente = $this->input->post("idPacienteHDN");
        $nombrePaciente = $this->input->post("nombrePacienteINP");
        $direccionDestino = $this->input->post("direccionDestinoINP");     
        $indicacionARL = $this->input->post("indicacionARL");
        $tipoIndicacionAmbulanciaARL = $this->input->post("tipoIndicacionAmbulanciaARL");
        $otrasIndicaciones = $this->input->post("otrasIndicacionesTA");
        
        
        if (is_array($indicacionARL)) $indicacionSTR = ',' . implode(",",$indicacionARL) . ',';
        else $indicacionSTR = "";
        $tipoIndicacionAmbulanciaSTR = ',' . implode(",", $tipoIndicacionAmbulanciaARL) . ',';
        
        
        $this->load->model("Ambulancia_model");
        $ambulanciaARL = $this->Ambulancia_model->buscarEstado($idAmbulancia);
        if ($ambulanciaARL[0]["idEstadoAmbulancia"] == "1")
            /*Se verifica el estado actual al momento de que el usuario confirme el cambio para ver si  aun
             el estado de esa ambulancia no ha sido actualizado en otra transaccion.*/
        {
            $this->load->model("ServicioAmbulancia_model");
            $this->ServicioAmbulancia_model->insertar($idAmbulancia, $idPaciente, $nombrePaciente
                , $direccionDestino, $indicacionSTR, $tipoIndicacionAmbulanciaSTR, $otrasIndicaciones);
        
            $this->mostrarVtCambioEstado("success", "Información:", "Transacción exitosa.");
        }
        else 
            $this->mostrarVtCambioEstado("error", "Error:", "No es posible pasar del estado actual de la ambulancia al estado: En solicitud de emergencia.");
        
    }
    
    
    
    public function mostrarVtnCambioEstado_a_EnEmergencia()
    {
        $this->load->model("Personal_model");
        $conductorARL = $this->Personal_model->buscarConductor();
        $paramedicoARL = $this->Personal_model->buscarParamédico_o_Doctor();
        $this->load->model("TipoIndicacionServicioAmbulancia_model");
        $tipoIndicacionServicioAmbulanciaARL = $this->TipoIndicacionServicioAmbulancia_model->buscar();
        
        $idAmbulancia = $this->input->get('idAmbulancia');
        
        
        $this->load->model("ServicioAmbulancia_model");
        $servicioAmbulanciaARL = $this->ServicioAmbulancia_model->buscarPor_Ambulancia_y_EnSolicitudDeServicio($idAmbulancia);
        $idServicioAmbulancia = $servicioAmbulanciaARL[0]["idServicioAmbulancia"];
        
        $this->load->model("IndicacionesServicioAmbulancia_model");
        $args["indicacionesServicioAmbulanciaARL"] = $this->IndicacionesServicioAmbulancia_model->buscar($idServicioAmbulancia);
        $args["idAmbulancia"] = $idAmbulancia;
        $args["placaAmbulancia"] = $this->input->get('placaAmbulancia');
        $args["conductorARL"] = $conductorARL;
        $args["paramedicoARL"] = $paramedicoARL;
        $args["idServicioAmbulancia"] = $idServicioAmbulancia;
        $args["fechaRegistro"] = $servicioAmbulanciaARL[0]["fechaRegistro"];
        $args["direccion"] = $servicioAmbulanciaARL[0]["direccion"];
        $args["otrasIndicaciones"] = $servicioAmbulanciaARL[0]["otrasIndicaciones"];
        $args["nombrePaciente"] = $servicioAmbulanciaARL[0]["nombrePaciente"];
        $args["codigoPaciente"] = $servicioAmbulanciaARL[0]["codigoPaciente"];
        $args["tipoIndicacionServicioAmbulanciaARL"] = $tipoIndicacionServicioAmbulanciaARL;
        $args["content"] = "servicioAmbulancia/CambioEstado_a_EnEmergencia";
        $args["title"] = "Cambio de estado de ambulancia a : En emergencia";
        
        $this->load->view("view", $args);
    }
    
    
    
    public function cambiarEstado_a_EnEmergencia()          
    {
        $idServicioAmbulancia = $this->input->post("idServicioAmbulanciaHDN");
        $idAmbulancia = $this->input->post("idAmbulanciaHDN");
        $idConductor = $this->input->post("conductorCB");
        $idParamedico = $this->input->post("paramedicoCB");
        $fechaSalida = $this->input->post("fechaSalidaINP");
        $horaSalida = $this->input->post("horaDeSalidaINP");
        $idPaciente = $this->input->post("idPacienteHDN");
        $nombrePaciente = $this->input->post("nombrePacienteINP");
        
        $this->load->model("Personal_model");
        $fechaHoraSalida = $fechaSalida . ' ' . $horaSalida . ':00:00';  
        
        $this->load->model("Ambulancia_model");
        $ambulanciaARL = $this->Ambulancia_model->buscarEstado($idAmbulancia);
        if ($ambulanciaARL[0]["idEstadoAmbulancia"] == "4") /*4 = En solicitud de emergencia*/
            /*Se verifica el estado actual al momento de que el usuario confirme el cambio para ver si es aun
             el estado de esa ambulancia no ha sido actualizado en otra transaccion.*/
        {
            $this->load->model("ServicioAmbulancia_model");
            $this->ServicioAmbulancia_model->actualizar_a_EnEmergencia($idServicioAmbulancia, $idConductor, $idParamedico, $fechaHoraSalida, $idPaciente, $nombrePaciente);
            $this->Ambulancia_model->actualizarEstado($idAmbulancia, 2); /*2 = En Emergencia*/
        
            $this->mostrarVtCambioEstado("success", "Información:", "Transacción exitosa.");
        }
        else 
            $this->mostrarVtCambioEstado("error", "Error:", "No es posible pasar del estado actual de la ambulancia al estado: En emergencia."); 
        
    }
    
    
    
    public function cambiarFormatoFecha_a_YMD(string $fecha)
    {
        return substr($fecha, 0, 2) + '/' + substr($fecha, 3, 2) + '/' + substr($fecha, 6, 2) ;
        
    }
    
    
    
    public function buscarPaciente()
    {
        $codigoPaciente = $this->input->get("codigo_Paciente");
        $nombrePaciente = $this->input->get("nombre_Paciente");
        $this->load->model("Paciente_model");
        $pacienteARL = $this->Paciente_model->buscarParaServicioAmbulancia($codigoPaciente, $nombrePaciente);
        $contenido = "";
        foreach ($pacienteARL as $paciente) {
            $fila = "<tr onmouseover=\"this.className='tr_hover_color';\" 
                onmouseout=\"this.className='tr_hover_nothing';\" 
                onDblClick=\"asignaPacienteParaServicioAmbulancia(this)\">
                    <td align='center' valign='middle' >" . $paciente['id_Persona'] . "</td>
                    <td align='center' valign='middle' >" . $paciente['codigo_Paciente'] . "</td>
                    <td align='center' valign='middle'>" . $paciente['nombre_Persona'] . "</td>
                    <td align='center' valign='middle'>" . $paciente['telefono_Persona'] . "</td>
                    <td align='center' valign='middle'>" . $paciente['direccion_Persona'] . "</td>
                </tr>";
            $contenido .= $fila;
        }
        echo $contenido;
    }
    
    
    /*
    public function cambiarEstado_a_SolicitudDeEmergencia()
    {
        $idAmbulancia = $this->input->post("idAmbulanciaINP");
        $placa = $this->input->post("placaINP");
        $idPaciente = $this->input->post("idPacienteHDN");
        $nombrePaciente = $this->input->post("nombrePacienteINP");
        $direccionDestino = $this->input->post("direccionDestinoINP");
        $indicacionARL = $this->input->post("indicacionARL");
        $tipoIndicacionAmbulanciaARL = $this->input->post("tipoIndicacionAmbulanciaARL");
        $otrasIndicaciones = $this->input->post("otrasIndicacionesTA");
        
        $this->load->model("Personal_model");
        $fechaHoraSalida = $fechaSalida . ' ' . $horaSalida . ':00:00';
        $indicacionSTR = ',' . implode(",",$indicacionARL) . ',';
        $tipoIndicacionAmbulanciaSTR = ',' . implode(",", $tipoIndicacionAmbulanciaARL) . ',';
        $this->load->model("ServicioAmbulancia_Model");
        $this->ServicioAmbulancia_Model->insertar($idAmbulancia, $idPaciente, $nombrePaciente
                , $direccionDestino, $idConductor, $idParamedico, $fechaHoraSalida
                , $indicacionSTR, $tipoIndicacionAmbulanciaSTR, $otrasIndicaciones);
        
        $this->mostrarVtCambioEstado();
        
    }*/
    
    
    
    public function mostrarVtnCambioEstado_desde_EnEmergencia_a_Disponible()
    {
        $args["placaAmbulancia"] = $this->input->get("placaAmbulancia");
        $idAmbulancia = $this->input->get("idAmbulancia");
        $args["idAmbulancia"] = $idAmbulancia;
        
        $this->load->model("ServicioAmbulancia_model");
        $servicioAmbulanciaARL = $this->ServicioAmbulancia_model->buscarPor_Ambulancia_y_EnEmergencia($idAmbulancia);
        $args["idServicioAmbulancia"] = $servicioAmbulanciaARL[0]["idServicioAmbulancia"];
        $args["nombreConductor"] = $servicioAmbulanciaARL[0]["nombreConductor"];
        $args["nombreParamedico"] = $servicioAmbulanciaARL[0]["nombreParamedico"];
        $args["direccion"] = $servicioAmbulanciaARL[0]["direccion"];
        $args["otrasIndicaciones"] = $servicioAmbulanciaARL[0]["otrasIndicaciones"];
        $args["nombrePaciente"] = $servicioAmbulanciaARL[0]["nombrePaciente"];
        $args["fechaSalida"] = $servicioAmbulanciaARL[0]["fechaSalida"];
        $args["codigoPaciente"] = $servicioAmbulanciaARL[0]["codigoPaciente"];
        $args["fechaRegistro"] = $servicioAmbulanciaARL[0]["fechaRegistro"];
        $args["content"] = "servicioAmbulancia/cambioEstado_desde_EnEmergencia_a_Disponible";
        $args["title"] = "Cambiar estado de ambulancia a disponible";
        
        $this->load->model("TipoIndicacionServicioAmbulancia_model");
        $args["tipoIndicacionServicioAmbulanciaARL"] = $this->TipoIndicacionServicioAmbulancia_model->buscar();
        
        
        $this->load->model("IndicacionesServicioAmbulancia_model");
        $args["indicacionesServicioAmbulanciaARL"] = $this->IndicacionesServicioAmbulancia_model->buscar($servicioAmbulanciaARL[0]["idServicioAmbulancia"]);
        
        $this->load->view("view", $args);
    }
    
    
    
    public function cambiarEstado_desde_EnEmergencia_a_Disponible()
    {
        $fechaRetorno = $this->input->post("fechaRetornoINP");
        $horaDeRetorno = $this->input->post("horaDeRetornoINP");
        $idAmbulancia = $this->input->post("idAmbulanciaHDN");
        $idServicioAmbulancia = $this->input->post("idServicioAmbulanciaHDN");
        $anotacionesCierre = $this->input->post("anotacionesCierreTA");
        $idPaciente = $this->input->post("idPacienteHDN");
        $nombrePaciente = $this->input->post("nombrePacienteINP");
        
        $this->load->model("ServicioAmbulancia_model");
        $fechaHoraRetorno = $fechaRetorno . ' ' . $horaDeRetorno . ':00:00';
        $this->load->model("Ambulancia_model");
        $ambulanciaARL = $this->Ambulancia_model->buscarEstado($idAmbulancia);
        if ($ambulanciaARL[0]["idEstadoAmbulancia"] == "2")
        {
            $this->ServicioAmbulancia_model->concluirServicio($idServicioAmbulancia, $fechaHoraRetorno, $anotacionesCierre, $idPaciente, $nombrePaciente );

            $this->load->model("Ambulancia_Model");
            $this->Ambulancia_Model->actualizarEstado($idAmbulancia, 1);
            $this->mostrarVtCambioEstado("success", "Información:", "Transacción exitosa.");
        } 
        else 
            $this->mostrarVtCambioEstado("error", "Error:","No es posible pasar del estado actual de la ambulancia al estado: Disponible.");
    }
    
    
    
    
    public function mostrarVtnCambioEstado_a_EnMantenimiento()
    {
        $idAmbulancia = $this->input->get("idAmbulancia");
        $placaAmbulancia = $this->input->get("placaAmbulancia");
        $args["idAmbulancia"] = $idAmbulancia;
        $args["placaAmbulancia"] = $placaAmbulancia;
        $args["content"] = "servicioAmbulancia/cambioEstado_a_Mantenimiento";
        $args["title"] = "Cambiar estado de ambulancia a: mantenimiento";
        $this->load->view("view", $args);
    }
    
    
    
    public function cambiarEstado_a_EnMantenimiento()
    {
        $idAmbulancia = $this->input->post("idAmbulanciaINP");
        $fechaSalida = $this->input->post("fechaSalidaINP");
        $horaDeSalida = $this->input->post("horaDeSalidaINP");
        $anotacionInicial = $this->input->post("anotacionInicialTA");
        
        $fechaHoraSalida = $fechaSalida . ' ' . $horaDeSalida . ':00:00';
        
        $this->load->model("Ambulancia_model");
        $ambulanciaARL = $this->Ambulancia_model->buscarEstado($idAmbulancia);
        if ($ambulanciaARL[0]["idEstadoAmbulancia"] == "1")
        {
            $this->load->model("MantenimientoAmbulancia_model");
            $this->MantenimientoAmbulancia_model->insertar($idAmbulancia, $fechaHoraSalida, $anotacionInicial);  

            $this->mostrarVtCambioEstado("success", "Información:", "Transacción exitosa.");
        }
         else 
             $this->mostrarVtCambioEstado("error", "Error:", "No es posible pasar del estado actual de la ambulancia al estado: En mantenimiento");
    }
    
    
    
    public function mostrarVtnCambioEstado_desde_EnMantenimiento_a_Disponible()
    {
        $idAmbulancia = $this->input->get("idAmbulancia");
        $placaAmbulancia = $this->input->get("placaAmbulancia");
        
        $this->load->model("MantenimientoAmbulancia_model");
        $mantenimientoARL = $this->MantenimientoAmbulancia_model->buscarPor_Ambulancia_y_NoConcluido($idAmbulancia);
        $args["idMantenimientoAmbulancia"] = $mantenimientoARL[0]["idMantenimientoAmbulancia"];
        $args["fechaHoraSalida"] = $mantenimientoARL[0]["fechaDeSalida"];
        $args["anotacionInicial"] = $mantenimientoARL[0]["anotacionInicial"];
        $args["idAmbulancia"] = $idAmbulancia;
        $args["placaAmbulancia"] = $placaAmbulancia;
        $args["content"] = "servicioAmbulancia/cambioEstado_desde_EnMantenimiento_a_Disponible";
        $args["title"] = "Cambiar estado de ambulancia a: Disponible";
        $this->load->view("view", $args);
    }
    
    
    
    public function cambiarEstado_desde_Mantenimiento_a_Disponible()
    {
        $idAmbulancia = $this->input->post("idAmbulanciaHDN");
        $idMantenimientoAmbulancia = $this->input->post("idMantenimientoAmbulanciaHDN");
        $fechaRetorno = $this->input->post("fechaRetornoINP");
        $horaDeRetorno = $this->input->post("horaDeRetornoINP");
        $anotacionDeCierre = $this->input->post("anotacionDeCierreTA");
        
        $fechaHoraRetorno = $fechaRetorno . ' ' . $horaDeRetorno . ':00:00';
        $this->load->model("Ambulancia_model");
        $ambulanciaARL = $this->Ambulancia_model->buscarEstado($idAmbulancia);
        if ($ambulanciaARL[0]["idEstadoAmbulancia"] == "3")
        {
            $this->load->model("MantenimientoAmbulancia_model");
            $this->MantenimientoAmbulancia_model->concluirMantenimiento($idMantenimientoAmbulancia, $anotacionDeCierre, $fechaHoraRetorno);
            $this->Ambulancia_model->actualizarEstado($idAmbulancia, 1);
            $this->mostrarVtCambioEstado("success", "Información:", "Transacción exitosa.");
        }
        else 
            $this->mostrarVtCambioEstado("error", "Error:", "No es posible pasar del estado actual de la ambulancia al estado: Disponible.");
        
    }
    
    
    
    public function mostrarVtnRegistroAmbulancia()
    {
        $args["content"] = "servicioAmbulancia/registroDeAmbulancia";
        $args["title"] = "Registro de ambulancia";
        $args["mensaje"] = null;
        $this->load->view("view", $args);
    }
    
    
    
    public function insertarAmbulancia()
    {
        $placaAmbulancia = $this->input->post("placaAmbulanciaINP");
        $this->load->model("Ambulancia_model");
        $this->Ambulancia_model->insertar($placaAmbulancia);
        $args["content"] = "servicioAmbulancia/registroDeAmbulancia";
        $args["title"] = "Registro de ambulancia";
        $args["mensaje"] = "Transacción exitosa.";
        $args["tituloMensaje"] = "Informacion:";
        $args["tipo"] = "success";
        /*Mandar mensaje de transaccion exitosa.*/
        $this->load->view("view", $args);
        
    }
}
?>
